package plus.easydo.server.user.mp.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import plus.easydo.server.user.mp.dto.OauthClientDetailsDto;
import plus.easydo.server.user.mp.qo.OauthClientDetailsQo;
import plus.easydo.server.user.mp.vo.OauthClientDetailsVo;

import java.util.List;

/**
 * oauth2客户端信息Service接口
 *
 * @author gebilaoyu
 * @date 2021-05-01
 */
public interface IOauthClientDetailsService
{

    /**
     * 分页查询oauth2客户端信息列表
     *
     * @param qo oauth2客户端信息
     * @return oauth2客户端信息集合
     */
    IPage<OauthClientDetailsVo> page(OauthClientDetailsQo qo);

    /**
     * 查询所有oauth2客户端信息列表
     *
     * @param qo oauth2客户端信息
     * @return oauth2客户端信息集合
     */
    List<OauthClientDetailsVo> list(OauthClientDetailsQo qo);

    /**
     * 查询oauth2客户端信息
     *
     * @param clientId oauth2客户端信息ID
     * @return oauth2客户端信息
     */
    OauthClientDetailsVo selectOauthClientDetailsById(String clientId);


    /**
     * 新增oauth2客户端信息
     *
     * @param dto oauth2客户端信息
     * @return 结果
     */
    int insertOauthClientDetails(OauthClientDetailsDto dto);

    /**
     * 修改oauth2客户端信息
     *
     * @param dto oauth2客户端信息
     * @return 结果
     */
    int updateOauthClientDetails(OauthClientDetailsDto dto);

    /**
     * 批量删除oauth2客户端信息
     *
     * @param clientIds 需要删除的oauth2客户端信息ID
     * @return 结果
     */
    int deleteOauthClientDetailsByIds(String[] clientIds);

    /**
     * 删除oauth2客户端信息信息
     *
     * @param clientId oauth2客户端信息ID
     * @return 结果
     */
    int deleteOauthClientDetailsById(String clientId);
}
